import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Leon here.
 * 
 * @author (Karen Gonzalez) 
 * @version (29/05/14)
 */
public class Leon extends Enemigos
{
    /**Variables de instancia de la clase Leon*/
    private int dirAle;  
    private int contAle; 
    private int saltaAle; 
    private  CatchWorld m;
    private Piña pina;    
    
    /**Constructor de la clase leon, inicializacion de variables de instancia*/
     public Leon()
    {
      getImage().scale(70,70);
      contAle = 0;
      saltaAle = 1;
      dirAle = 1;
    }    
    
    /**Metodo actua de la clase Leon*/
    public void act() 
    {
        m = (CatchWorld)this.getWorld();
        pina = ((CatchWorld)getWorld()).getPina();
        Plataforma();
        mueveLeon();
        tomaLlave();
    }
    
    /**Metodo que se utiliza para mover el leon */
    public void mueveLeon()
    {
        move(3*dirAle);
        if(Greenfoot.getRandomNumber( 600 ) == 0)
        {
            dirAle = dirAle*-1;
        }
        if(getX()>=750)
        {
            dirAle = -1;
        }
        else if(getX()<50)
        {
            dirAle = 1;
        }                
    }
    
    /**Metodo para verificar el Leon este tocando la plataforma*/
    public void Plataforma()
    {
        Actor p = getOneObjectAtOffset(-25, 25,Plataforma.class);
        if(p == null)
        {
            gravedad();            
        }
        else
        if(p.getY() > this.getY())
        {
            setLocation(getX(), p.getY()-40);
            
        }
          else
          setLocation(getX(), getY()+100);
    }
    
    /**Metodo para cuando el leon no toca la plataforma, caiga*/
   public void gravedad()
   {
       if( this.getY() <= 530 )
       {
          setLocation(getX(), getY()+2);
       }
   }
   
   /**Metodo para que el leon toque la llave*/
   public void tomaLlave()
   {
       if(isTouching(Llave.class))
       {
           m.pierde();
        }       
    }   
}
